package com.winshare.saleAssistant.dao;

import com.winshare.saleAssistant.domain.dto.req.StatisticReq1DTO;
import com.winshare.saleAssistant.domain.dto.resp.*;
import com.winshare.saleAssistant.domain.entity.StatisticsDO;
import com.winshare.saleAssistant.domain.query.StatisticReq3Query;
import com.winshare.saleAssistant.domain.query.StatisticReq4Query;
import com.winshare.saleAssistant.domain.query.StatisticReq5Query;
import com.winshare.saleAssistant.domain.query.StatisticReq6Query;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
@Mapper
public interface StatisticsMapper {

    StatisticResp1DTO getActiveStaffAndTotalStaffAmount(StatisticReq1DTO statisticReq1DTO);

    StatisticResp2DTO getArticleAndProductReadAndPromotionAndArticleSubmitCount(StatisticReq1DTO statisticReq1DTO);

    int getOrgUsageCount(StatisticReq3Query statisticReq3Query);

    List<StatisticResp3DTO> getOrgUsage(StatisticReq3Query statisticReq3Query);

    int getProductFocusInfoCount(StatisticReq4Query statisticReq4Query);

    List<StatisticResp4DTO> getProductFocusInfo(StatisticReq4Query statisticReq4Query);

    int getArticleReadOrderCount(StatisticReq5Query statisticReq5Query);

    List<StatisticResp5DTO> getArticleReadOrder(StatisticReq5Query statisticReq5Query);

    int getStaffUsageOrderCount(StatisticReq6Query statisticReq6Query);

    List<StatisticResp6DTO> getStaffUsageOrder(StatisticReq6Query statisticReq6Query);

    int saveStatistics(StatisticsDO statisticsDO);

    StatisticsDO getStaffData(StatisticsDO statisticsDO);

    void updateStaffData(StatisticsDO statisticsDO);
}
